/*
 ============================================================================
 文件名 	: EasyBounceRankContainer.h
 描述		: rankview container.
 ============================================================================
 */
#ifndef EASYBOUNCERANKCONTAINER_H_
#define EASYBOUNCERANKCONTAINER_H_

// 引用
#include <coecntrl.h>
#include <aknlists.h>
#include "coedef.h"
#include "eiklbx.h"         

//前向声明
class CEasyBounceRankView;
class CEasyBounceRankList;

/**
*  类声明
*/
class CEasyBounceRankContainer : public CCoeControl, MCoeControlObserver
    {
    public: // 构造和析构函数
        
        /**
        * 两阶段构造函数.
        * @参数aRect，表示container在屏幕上对应的区域.
        */
        void ConstructL(const TRect& aRect);
        
        /**
        * Constructor.
        */
        CEasyBounceRankContainer(CEasyBounceRankView* aView);

        /**
        * 虚析构函数.
        */
        ~CEasyBounceRankContainer();
        
        /*
          OfferKeyEventL
	              处理按键事件
          @参数aKeyEvent，按键事件
          @参数aType，按键事件类型，分为以下三种: EEventKey, EEventKeyUp以及EEventKeyDown.
          @返回值用来表示按键事件是否被此控件处理.
          */
         TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
         
         /**
         * 删除一条玩家分数记录.
         */
         void DeleteItemFromRank();

    private: // 基类函数

        /**
         * 继承自CoeControl
         */
        void SizeChanged();

        /**
         * 继承自CoeControl
         */
        TInt CountComponentControls() const;

        /**
         * 继承自 CCoeControl
         */
        CCoeControl* ComponentControl(TInt aIndex) const;

        /**
         * 继承自 CCoeControl
         */
        void Draw(const TRect& aRect) const;

        /**
         * 继承自CCoeControl
         * 用于处理控件事件
         */
        void HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType);
        
    public: // 新增函数
    	
        /**
         * 此函数用来测试排行榜界面
         */    	
    	void RankListTest();
    	
        /**
         * 返回排行榜ListBox的指针
         */
    	CAknDoubleNumberStyleListBox* ListBox();
    	
        /**
         * 返回排行数据列表的指针
         */
    	CEasyBounceRankList* RankList();
    
    private: //新增函数
    	void InitListBox();

    private: //数据
    	CEasyBounceRankView* iView;  //不拥有此指针
    	
    	CAknDoubleNumberStyleListBox* iListBox;
    	
    	CEasyBounceRankList* iList;
    };

#endif /* EASYBOUNCERANKCONTAINER_H_ */
